|
Этот текст - краткий экскурс в то, как же устроен и работает этот загадочный дисковод 800 кб в "Агате". Так как ни схемы ни толковой документации по нему не существует, а устройство достаточно сложное и интересное, я решил, насколько хватит мозгов, разобраться в его устройстве. Получилось не до конца, самое сложное и интересное осознать не удалось, но даже то, что сделано - уже хорошо. В том числе для тех двух контроллеров, которые удалось отремонтировать. Слово "краткий" означает, что я исхожу из предположения, что читатель свободно владеет знаниями о цифровых микросхемах, их номенклатуре, представляет себе шину управления дисководами FD55 и им подобным, а также программный интерфейс 800 кб контроллера. А где-то через год после написания этого текста удалось выловить похожий, но более подробный (вероятно - официальный) документ: часть 1, часть 2. Сначала качаем схему и компоновку (1,2 Мб). Первая страница - входные цепи - системная шина и селектор адресов, который коммутирует различные части контроллера с системной шиной при обращении ЦПУ к контроллеру. Вторая страница - то же самое + выходные цепи - буферные схемы интерфейса с дисководом. Третья страница - схема канала кодирования/декодирования данных. Четвертая - подписи номеров микросхем на плате. Там высокое разрешение, так что видны и точные названия кристалов. Так как официальной схемы я не видел, мои подписи с ней, разумеется, не совпадут. На моих схемах нет двух микросхем - кр580вв55а. Но все линии, которые к ним идут, показаны, например, так: "19.B4 \\ D14" - значит, кристалл D14, лапка 19, 4-й бит порта B. Либо так: "D14.C7" - это кристал D14, 7-й бит порта C. И ещё: из-за ошибки у меня получилось две микросхемы D6, поэтому одна из них позднее была переименована в D6'. Коротко: что и зачем ? Условно можно разделить контроллер на следующие блоки:
Декодер адресаСформирован элементами D2, D3, D4, D5, D6', D8. D2 (двунаправленный канальный усилитель): с одной стороны у него подключается системная шина, с другой - выходы ПЗУ D1 и параллельно включенные магистрали регистров D14, D15. На остальных элементах собран декодер, выходные сигналы которого подключаются к элементам D14, D15 на входы выбора адреса и операции (!запись, !чтение). Регистры D14, D15 активизируются при обращении к младшим 8 адресам управления (C0x0..C0x7). Кроме того, вывод 11 кристалла D5 идёт на D8, который активируется для старших 8 адресов управления (C0x8..C0xF) и выдаёт сигналы, вызывающие запись синхросбоя (C0x8), сдвиг головки (C0x9) и сброс флага сбоя синхронизации (C0xA). Первый элемент микросхемы D3 просто инвертирует общесистемный сигнал сброса для передачи на микросхемы D14, D15. Умножитель частотыОбразован элементами D6', D7, D10, D20. Действует следующим образом: на каждую смену сигнала 2 МГц RC-цепочками формируется короткий импульс (т.е. короткий импульс при спаде 2 МГц и при подъёме). В дальнейшем эти импульсы растягиваются до 1/8 мкс элементом D20. Схемы этого формирователя менялись, карандашем набросан более старый вариант. На следующих рисунках красный - сигнал синхронизации 2.04 МГц, синий - описываемый сигнал.
Входной сигнал 2.04 МГц на входе 13 м/с D13.
С выхода 12 этой м/с снимается инвертированный сигнал.
Инвертор D10 с открытым коллектором на выходе 4 немного искажает сигнал при инвертировании..
Сигнал на входе 4 м/с D6'.
Сигнал на входе 5 м/с D6'.
Выход 6 м/с D6'.
С выхода 12 м/с D20 снимается уже почти прямоугольный, со скважностью 1:1, сигнал синхронизации 4 МГц.
Для некоторых частей контроллера нужен этот же сигнал, но в инверсном виде. Он снимается с вывода 6 м/с D7.
Выходные буфераD12, D13 - магистральные усилители. Просто усиливают сигналы перед передачей в канал. Но сюда же можно отнести и одновибратор, образованный микросхемой D9: по входу 9 она получает короткий импульс при обращении к адресу C0x9 и растягивает примерно до 1.5 мкс. Ещё один одновибратор: D11, вероятно, он предназначен для того, чтобы поддерживать работу дисковода в течение некоторого времени после программной остановки. Это позволяет заканчивать чтение сектора командой выключения дисковода и начинать следующий сектор командой включения - если интервал будет небольшим, двигатель не будет останавливаться. Ещё одна особенность: формирователь сигнала выбора привода: в основном, это м/с D12. Её вывод 3 подключен к разъёму шлейфа дисковода, на лапку A1. В штатном кабеле этот контакт не задействован, сигнал на нём будет появлятся при обращении к любому из приводов. Возможно, планировалось на него повесить светодиод индикации включения дисководов. Интеллектуальные регистры-защёлкиНе знаю как ещё назвать эти микросхемы: D14, D15. Каждая из них имеет три восьмиразрядных регистра, каждый из которых может хранить и выводить данные, переданные от ЦПУ либо вводить данные по запросу в ЦПУ. Причем D14 стандартным драйвером программируется так: порты A, B - ввод, C - вывод. А вот D15 переводится в режим аппаратного стробирования и раскладка становится такой: A - вывод со стробированием, B - ввод со стробированием, сигналы управления в C. При этом часть C формируется самой микросхемой, а часть вводится извне напрямую. D14 управляет различными "тупыми" функциями, как -то "включить", "выключить", "привод", "сторона", "направление", "index", "трек 0", "готовность", "защита записи" и т.д. - т.е. выполняет функции, напоминающие PC-шный LPT-порт - просто передаёт от дисковода процессору, а от процессора - дисководу медленно и редко меняющиеся биты. D15 действует значительно сложнее: она передаёт только данные для записи/чтения, причём для канала чтения передаёт только сигнал готовности от декодера к ЦПУ (нет смысла передавать готовность от ЦПУ к декодеру - он же не может тормознуть диск с точностью до бита, если процессор не готов), а для записи - от ЦПУ к декодеру (по той же причине). Часть микросхемы D6' тоже можно отнести к этому блоку: по входам 9 и 10 она получает сигналы готовности регистров данных чтения или записи от D15 (вообще-то они предназначены для генерации прерывания процессора, но в этой схеме использованы по другому) и выставляет их в разряд C7 той же D15, откуда их в режиме программного пуллинга считывает драйвер. Кодер/декодер записи/чтенияЕсли до этого места всё было вполне просто и понятно, то дальше начинаются сложности. Сигнал чтения подаётся на вход 1 м/с D7, затем через D21 и D18.4..D18.2 поступает на очень хитрый табличный сдвиговый регистр, образованный ПЗУ D6 и линейками защёлок D18 и D19. Именно эта схема для своего тактирования требует 4 МГц. Очевидно, что различные входные последовательности бит будут формировать различные данные на выходе, часть из которых будет просто передаваться сдвиговому регистру D16 на вход 11, а часть - счётчику D23, который в конце концов сформирует либо сигнал сбоя синхронизации, который будет запомнен флажком D21, либо сигналы готовности данных (причем он делает это как для режима чтения так и для режима записи), которые будут переданы D15 и вызовут мгновенную передачу данных от D16 в D15 по параллельному каналу. После этого D16 может принимать очередной байт, а процессор когда нибудь прочитает (если успеет) данные из D15. В режиме записи всё почти также загадочно. Данные от D15 передаются по параллельному каналу на D16, откуда побитно передаются на D17. Отсюда они, смешиваясь с сигналами "предкомпенсация" и "сильная предкомпенсация", попадают в табличный преобразователь D25. Судя по тому, что с него сигнал передаётся на счётчик D22, который работает в режиме постоянного увеличения с фиксированной частотой 4 МГц, вероятно, в D25 хранится таблица соответствия некоторых ключевых комбинаций бит длительности записываемого на диск импульса. Но это только предположение. Кроме того, на вход 11 D22 заводится сигнал с уже знакомого табличного сдвигового регистра: D6, D18, D19. И он же, по линии 23, управляет м/с D17, которая также участвует в формировании сигналов записи. В то же время, в режиме записи, единственный входной сигнал: подаваемый на вход 1 м/с D21 сигнал записи синхросбоя. Возможно, только формированием этой последовательности и занимается табличный сдвиговый регистр, когда контроллер находится в режиме записи ?
В канале тишина, данные от ЦПУ не поступают, но на вход 1 м/с D20 всё равно поступают импульсы. Синий - D20.1, Красный - синхро.
Так D20 формирует импульс записи: Синий - выход D20.13, Красный - вход D20.1.
Выход D20 по отношению к синхронизации: Синий - D20.13, Красный - синхро.
У меня есть файлы содержимого D25 и D6, но к пониманию общей идеи их изучение не привело. Они есть в разделе "прошивки". Дальше всё просто: сигнал с D22 попадает на одновибратор D20, который формирует импульсы длительностью 0.5 мкс, либо - в старых версиях контроллера - м/с D20 входила в умножитель частоты, а импульсы записи получались простым инвертированием сигнала, получаемого от D22. |
Владимир
deka sobaka itc точка tsu точка ru
deka пёсик ssmu точка ru
Зеркало сайта